﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using MJM.SUD.EntidadesNegocio;
using MJM.CBD.Conn;

namespace MJM.SUD.AccesoDatos
{
    public class DireccionAD
    {
        public List<DireccionE> Listado(int NumeroOpt)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_web_T_DIRE_VIAS_Lista", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmNumero;
            SqlDataReader dr;
            List<DireccionE> lst = new List<DireccionE>();
            try
            {
                prmNumero = cmd.CreateParameter();
                prmNumero.ParameterName = "@VIA_inTABLA";
                prmNumero.SqlDbType = SqlDbType.Int;
                prmNumero.Value = NumeroOpt;

                cmd.Parameters.Add(prmNumero);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                DireccionE obj = new DireccionE();
                while (dr.Read())
                {
                    obj = new DireccionE();
                    obj.IDVia1 = dr.GetInt32(dr.GetOrdinal("VIA_P_inID"));
                    obj.sVia1 = dr.GetString(dr.GetOrdinal("VIA_chABREV"));
                    obj.SVia41 = dr.GetString(dr.GetOrdinal("VIA_chDESC"));
                    lst.Add(obj);
                }
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                conn.Dispose();
                cmd.Dispose();
            }
            return lst;
        }

        public List<DireccionE> ListadoTramite(int Numero)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaTramite());
            SqlCommand cmd = new SqlCommand("sp_s_T_TIPO_VIA_ListViaTram", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmNumero;
            SqlDataReader dr;
            List<DireccionE> lst = new List<DireccionE>();

            try
            {
                prmNumero = cmd.CreateParameter();
                prmNumero.ParameterName = "@tipo";
                prmNumero.SqlDbType = SqlDbType.Int;
                prmNumero.Value = Numero;

                cmd.Parameters.Add(prmNumero);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                DireccionE obj = new DireccionE();
                while (dr.Read())
                {
                    obj = new DireccionE();
                    obj.IDVia1 = dr.GetInt32(0);
                    obj.sVia1 = dr.GetString(1);
                    lst.Add(obj);
                }
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                conn.Dispose();
                cmd.Dispose();
            }

            return lst;
        }

        public int GuardaDireccion(DireccionE objDireccionE)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_i_WEB_T_DIRE_PADR_Registrar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIDPersona;
            SqlParameter prmIDVia1;
            SqlParameter prmIDVia2;
            SqlParameter prmIDVia3;
            SqlParameter prmIDVia4;
            SqlParameter prmDescVia1;
            SqlParameter prmDescVia2;
            SqlParameter prmDescVia3;
            SqlParameter prmDescVia4;
            SqlParameter prmUbiGeo;
            SqlParameter prmFechaModificacion;
            SqlParameter prmFechaCreacion;
            SqlParameter prmEliminado, prmidCalle;
            try
            {
                prmIDPersona = cmd.CreateParameter();
                prmIDPersona.ParameterName = "@IDPersona";
                prmIDPersona.SqlDbType = SqlDbType.VarChar;
                prmIDPersona.Value = objDireccionE.IDPersona;

                prmIDVia1 = cmd.CreateParameter();
                prmIDVia1.ParameterName = "@IDVia1";
                prmIDVia1.SqlDbType = SqlDbType.Int;
                prmIDVia1.Value = objDireccionE.IDVia1;

                prmIDVia2 = cmd.CreateParameter();
                prmIDVia2.ParameterName = "@IDVia2";
                prmIDVia2.SqlDbType = SqlDbType.Int;
                prmIDVia2.Value = objDireccionE.IDVia2;

                prmIDVia3 = cmd.CreateParameter();
                prmIDVia3.ParameterName = "@IDVia3";
                prmIDVia3.SqlDbType = SqlDbType.Int;
                prmIDVia3.Value = objDireccionE.IDVia3;

                prmIDVia4 = cmd.CreateParameter();
                prmIDVia4.ParameterName = "@IDVia4";
                prmIDVia4.SqlDbType = SqlDbType.Int;
                prmIDVia4.Value = objDireccionE.IDVia4;

                prmDescVia1 = cmd.CreateParameter();
                prmDescVia1.ParameterName = "@DescVia1";
                prmDescVia1.SqlDbType = SqlDbType.VarChar;
                prmDescVia1.Value = objDireccionE.sVia1;

                prmDescVia2 = cmd.CreateParameter();
                prmDescVia2.ParameterName = "@DescVia2";
                prmDescVia2.SqlDbType = SqlDbType.VarChar;
                prmDescVia2.Value = objDireccionE.SVia2;

                prmDescVia3 = cmd.CreateParameter();
                prmDescVia3.ParameterName = "@DescVia3";
                prmDescVia3.SqlDbType = SqlDbType.VarChar;
                prmDescVia3.Value = objDireccionE.SVia3;

                prmDescVia4 = cmd.CreateParameter();
                prmDescVia4.ParameterName = "@DescVia4";
                prmDescVia4.SqlDbType = SqlDbType.VarChar;
                prmDescVia4.Value = objDireccionE.SVia4;

                prmUbiGeo = cmd.CreateParameter();
                prmUbiGeo.ParameterName = "@IDDistrito";
                prmUbiGeo.SqlDbType = SqlDbType.Int;
                prmUbiGeo.Value = objDireccionE.Ubicacion;

                prmEliminado = cmd.CreateParameter();
                prmEliminado.ParameterName = "@Eliminado";
                prmEliminado.SqlDbType = SqlDbType.Int;
                prmEliminado.Value = objDireccionE.Eliminado;

                prmFechaCreacion = cmd.CreateParameter();
                prmFechaCreacion.ParameterName = "@FechaCreacion";
                prmFechaCreacion.SqlDbType = SqlDbType.VarChar;
                prmFechaCreacion.Value = objDireccionE.FechaCreacion;

                prmFechaModificacion = cmd.CreateParameter();
                prmFechaModificacion.ParameterName = "@FechaModificacion";
                prmFechaModificacion.SqlDbType = SqlDbType.VarChar;
                prmFechaModificacion.Value = objDireccionE.FechaModificacion;

                prmidCalle = cmd.CreateParameter();
                prmidCalle.ParameterName = "@vidCalle";
                prmidCalle.SqlDbType = SqlDbType.Int;
                prmidCalle.Value = objDireccionE.IdCalle;

                cmd.Parameters.Add(new SqlParameter("@vDIRE_chDESDIR", objDireccionE.Descripcion));
                cmd.Parameters.Add(prmDescVia1);
                cmd.Parameters.Add(prmDescVia2);
                cmd.Parameters.Add(prmDescVia3);
                cmd.Parameters.Add(prmDescVia4);
                cmd.Parameters.Add(prmEliminado);
                cmd.Parameters.Add(prmFechaCreacion);
                cmd.Parameters.Add(prmFechaModificacion);
                cmd.Parameters.Add(prmIDVia1);
                cmd.Parameters.Add(prmIDVia2);
                cmd.Parameters.Add(prmIDVia3);
                cmd.Parameters.Add(prmIDVia4);
                cmd.Parameters.Add(prmUbiGeo);
                cmd.Parameters.Add(prmIDPersona);
                cmd.Parameters.Add(prmidCalle);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return 1;
        }

        public int ObtenerIDUbiGeo(int IDDistrito, int IDProvincia, int IDDepartamento)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_WEB_T_MAES_UBIG_ObtenerID", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIDDistrito, prmIDProvincia, prmIDDepartamento;
            SqlDataReader dr;
            int icodigo = -1;
            try
            {
                prmIDDistrito = cmd.CreateParameter();
                prmIDDistrito.ParameterName = "@IDDistrito";
                prmIDDistrito.SqlDbType = SqlDbType.Int;
                prmIDDistrito.Value = IDDistrito;

                prmIDDepartamento = cmd.CreateParameter();
                prmIDDepartamento.ParameterName = "@IDDepartamento";
                prmIDDepartamento.SqlDbType = SqlDbType.Int;
                prmIDDepartamento.Value = IDDepartamento;

                prmIDProvincia = cmd.CreateParameter();
                prmIDProvincia.ParameterName = "@IDProvincia";
                prmIDProvincia.SqlDbType = SqlDbType.Int;
                prmIDProvincia.Value = IDProvincia;

                cmd.Parameters.Add(prmIDProvincia);
                cmd.Parameters.Add(prmIDDepartamento);
                cmd.Parameters.Add(prmIDDistrito);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    icodigo = dr.GetInt32(dr.GetOrdinal("UBIG_P_inCODUBI"));
                }
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();

            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return icodigo;
        }

        public int ValidaDireccion(String IDPer)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_WEB_T_DIRE_PADR_Valida", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIDPersona;
            int codigo = -1;
            SqlDataReader dr;
            try
            {
                prmIDPersona = cmd.CreateParameter();
                prmIDPersona.ParameterName = "@IDPer";
                prmIDPersona.SqlDbType = SqlDbType.VarChar;
                prmIDPersona.Value = IDPer;

                cmd.Parameters.Add(prmIDPersona);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    codigo = dr.GetInt32(dr.GetOrdinal("DIRE_P_inID"));
                }
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                throw ex;
            }
            return codigo;
        }

        public String GetDistrito(int CodUbig)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_MAES_UBIG_Obtener", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmNumero;
            SqlDataReader dr;
            string distrito = "";
            try
            {
                prmNumero = cmd.CreateParameter();
                prmNumero.ParameterName = "@IDUbig";
                prmNumero.SqlDbType = SqlDbType.Int;
                prmNumero.Value = CodUbig;
                cmd.Parameters.Add(prmNumero);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                    distrito = dr.GetString(6);
                cmd.Connection.Close();
                conn.Dispose();
                cmd.Dispose();
            }
            catch (Exception ex)
            {
                conn.Dispose();
                cmd.Dispose();
            }
            return distrito;
        }

        public String GetProvincia(int CodUbig)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_MAES_UBIG_Obtener", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmNumero;
            SqlDataReader dr;
            string distrito = "";
            try
            {
                prmNumero = cmd.CreateParameter();
                prmNumero.ParameterName = "@IDUbig";
                prmNumero.SqlDbType = SqlDbType.Int;
                prmNumero.Value = CodUbig;
                cmd.Parameters.Add(prmNumero);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                    distrito = dr.GetString(5);
                cmd.Connection.Close();
                conn.Dispose();
                cmd.Dispose();
            }
            catch (Exception ex)
            {
                conn.Dispose();
                cmd.Dispose();
            }
            return distrito;
        }

        public String GetDepartamento(int CodUbig)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_MAES_UBIG_Obtener", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmNumero;
            SqlDataReader dr;
            string distrito = "";
            try
            {
                prmNumero = cmd.CreateParameter();
                prmNumero.ParameterName = "@IDUbig";
                prmNumero.SqlDbType = SqlDbType.Int;
                prmNumero.Value = CodUbig;
                cmd.Parameters.Add(prmNumero);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                    distrito = dr.GetString(4);
                cmd.Connection.Close();
                conn.Dispose();
                cmd.Dispose();
            }
            catch (Exception ex)
            {
                conn.Dispose();
                cmd.Dispose();
            }
            return distrito;
        }

        public String GetIDUbig(int CodUbig)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_MAES_UBIG_Obtener", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmNumero;
            SqlDataReader dr;
            string distrito = "";
            try
            {
                prmNumero = cmd.CreateParameter();
                prmNumero.ParameterName = "@IDUbig";
                prmNumero.SqlDbType = SqlDbType.Int;
                prmNumero.Value = CodUbig;
                cmd.Parameters.Add(prmNumero);

                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                    distrito = dr.GetInt32(1).ToString() + "," + dr.GetInt32(2).ToString() + "," + dr.GetInt32(3).ToString();
                cmd.Connection.Close();
                conn.Dispose();
                cmd.Dispose();
            }
            catch (Exception ex)
            {
                conn.Dispose();
                cmd.Dispose();
            }
            return distrito;
        }
        public List<DireccionE> ListarxPersona(String IDPersona)
        {
            List<DireccionE> lst1, lst2, lst3;
            string via1 = "";
            string via2 = "";//string via3="";
            List<DireccionE> lst = new List<DireccionE>();
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_DIRE_PADR_ListarXPersona", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIDPersona;
            SqlDataReader dr;
            DireccionE obj;
            try
            {
                prmIDPersona = cmd.CreateParameter();
                prmIDPersona.ParameterName = "@IDPersona";
                prmIDPersona.SqlDbType = SqlDbType.VarChar;
                prmIDPersona.Value = IDPersona;
                cmd.Parameters.Add(prmIDPersona);

                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    obj = new DireccionE();
                    obj.IDDireccion = dr.GetInt32(0);
                    obj.IDPersona = dr.GetString(1);
                    obj.IDVia1 = dr.GetInt32(2);
                    obj.sVia1 = dr.GetString(3);
                    obj.IDVia2 = dr.GetInt32(4);
                    obj.SVia2 = dr.GetString(5);
                    obj.IDVia3 = dr.GetInt32(6);
                    obj.SVia3 = dr.GetString(7);
                    obj.Departamento = GetDepartamento(dr.GetInt32(14));
                    obj.Distrito = GetDistrito(dr.GetInt32(14));
                    obj.Provincia = GetProvincia(dr.GetInt32(14));
                    obj.Ids = GetIDUbig(dr.GetInt32(14));
                    lst1 = Listado(10);
                    foreach (DireccionE dire in lst1)
                        if (dire.IDVia1 == obj.IDVia1)
                        { via1 = dire.sVia1; break; }

                    lst2 = Listado(30);
                    foreach (DireccionE dire2 in lst2)
                        if (dire2.IDVia1 == obj.IDVia2)
                        { via2 = dire2.sVia1; break; }
                    /*
                     lst3 = Listado(30);
                     foreach (DireccionE dire3 in lst3)
                         if (dire3.IDVia1 == obj.IDVia3)
                         { via3 = dire3.SVia3; break; } */
                    obj.SVia4 = via1 + " " + obj.sVia1 + " " + obj.SVia3 + ", " + via2 + ": " + obj.SVia2;
                    obj.IDVia4 = dr.GetInt32(8);
                    obj.SVia41 = dr.GetString(9);
                    lst.Add(obj);
                }

                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                conn.Dispose();
                cmd.Dispose();
            }
            return lst;
        }

        public int Eliminar(int IDDireccion)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_u_T_DIRE_PADR_Eliminar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIDDireccion;
            try
            {
                prmIDDireccion = cmd.CreateParameter();
                prmIDDireccion.ParameterName = "@CodigoDire";
                prmIDDireccion.SqlDbType = SqlDbType.Int;
                prmIDDireccion.Value = IDDireccion;
                cmd.Parameters.Add(prmIDDireccion);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return 1;
        }

        public List<DireccionE> ListarDireccion2(int IDVia)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaObservatorio());
            SqlCommand cmdListar = new SqlCommand("sp_s_T_MAES_CALLE_ListVias", conn);
            cmdListar.CommandType = CommandType.StoredProcedure;
            SqlDataReader drListar = null;
            SqlParameter prmIDVia;
            try
            {
                prmIDVia = cmdListar.CreateParameter();
                prmIDVia.ParameterName = "@vVIA_P_chID";
                prmIDVia.SqlDbType = SqlDbType.Int;
                prmIDVia.Value = IDVia;
                cmdListar.Parameters.Add(prmIDVia);

                cmdListar.Connection.Open();
                drListar = cmdListar.ExecuteReader();
                List<DireccionE> lst = new List<DireccionE>();
                while (drListar.Read())
                {
                    DireccionE obj = new DireccionE();
                    obj.sVia1 = drListar.GetString(drListar.GetOrdinal("CALLE_chDESC"));
                    obj.Ubicacion = Convert.ToInt32(drListar.GetString(drListar.GetOrdinal("CALLE_P_chID")));
                    lst.Add(obj);
                }
                cmdListar.Connection.Close();
                cmdListar.Dispose();
                conn.Dispose();
                return lst;
            }
            catch (Exception ex)
            {
                cmdListar.Dispose();
                conn.Dispose();
                throw ex;
            }
        }

        public List<DireccionE> ListarDireccionNombre(string calle)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmdListar = new SqlCommand("sp_s_ListarCalles", conn);
            cmdListar.CommandType = CommandType.StoredProcedure;
            SqlDataReader drListar = null;
            SqlParameter prmIDVia;
            try
            {
                prmIDVia = cmdListar.CreateParameter();
                prmIDVia.ParameterName = "@vCalles";
                prmIDVia.SqlDbType = SqlDbType.VarChar;
                prmIDVia.Value = calle;
                cmdListar.Parameters.Add(prmIDVia);

                cmdListar.Connection.Open();
                drListar = cmdListar.ExecuteReader();
                List<DireccionE> lst = new List<DireccionE>();
                while (drListar.Read())
                {
                    DireccionE obj = new DireccionE();
                    obj.IDVia1 = Convert.ToInt32(drListar.GetString(drListar.GetOrdinal("VIA")));
                    obj.sVia1 = drListar.GetString(drListar.GetOrdinal("NomCalle"));
                    obj.Ubicacion = Convert.ToInt32(drListar.GetString(drListar.GetOrdinal("CALLE")));
                    lst.Add(obj);
                }
                cmdListar.Connection.Close();
                cmdListar.Dispose();
                conn.Dispose();
                return lst;
            }
            catch (Exception ex)
            {
                cmdListar.Dispose();
                conn.Dispose();
                throw ex;
            }
        }

        public String ObtenerDirecTramite(int IdPerTramite)
        {
            // DireccionE objDireccionE = null;
            String direccion = "";
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaTramite());
            SqlCommand cmd = new SqlCommand("sp_s_T_MAES_EMPOFI_ObtenerDire", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmNumero;
            SqlDataReader dr;
            try
            {
                prmNumero = cmd.CreateParameter();
                prmNumero.ParameterName = "@vEMP_inCODID";
                prmNumero.SqlDbType = SqlDbType.Int;
                prmNumero.Value = IdPerTramite;
                cmd.Parameters.Add(prmNumero);

                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    try
                    {
                        direccion = dr.GetString(0);
                    }
                    catch
                    {
                        direccion = "";
                    }
                }

                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
            }

            return direccion;
        }

        public int ActualizarDireTramite(DireccionE objDireccion, string DireCompleta)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaTramite());
            SqlCommand cmd = new SqlCommand("sp_s_WEB_T_MAES_EMPOFI_ActDirec", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIDPersona;
            SqlParameter prmIDVia1;
            SqlParameter prmIDVia2;
            SqlParameter prmIDVia3;
            SqlParameter prmIDVia4;
            SqlParameter prmDescVia1;
            SqlParameter prmDescVia2;
            SqlParameter prmDescVia3;
            SqlParameter prmDescVia4;
            SqlParameter prmUbiGeo, prmDireCompleta;
            //         SqlParameter prmFechaModificacion;       
            try
            {
                prmIDPersona = cmd.CreateParameter();
                prmIDPersona.ParameterName = "@vEMP_inCODID";
                prmIDPersona.SqlDbType = SqlDbType.VarChar;
                prmIDPersona.Value = objDireccion.IDPersona;

                prmIDVia1 = cmd.CreateParameter();
                prmIDVia1.ParameterName = "@vTVIA_P_inID";
                prmIDVia1.SqlDbType = SqlDbType.Int;
                prmIDVia1.Value = objDireccion.IDVia1;

                prmIDVia2 = cmd.CreateParameter();
                prmIDVia2.ParameterName = "@vNKM_P_inID";
                prmIDVia2.SqlDbType = SqlDbType.Int;
                prmIDVia2.Value = objDireccion.IDVia2;

                prmIDVia3 = cmd.CreateParameter();
                prmIDVia3.ParameterName = "@vIDL_P_inID";
                prmIDVia3.SqlDbType = SqlDbType.Int;
                prmIDVia3.Value = objDireccion.IDVia3;

                prmIDVia4 = cmd.CreateParameter();
                prmIDVia4.ParameterName = "@vTZON_P_inID";
                prmIDVia4.SqlDbType = SqlDbType.Int;
                prmIDVia4.Value = objDireccion.IDVia4;

                prmDescVia1 = cmd.CreateParameter();
                prmDescVia1.ParameterName = "@vEMP_chTVIADESC";
                prmDescVia1.SqlDbType = SqlDbType.VarChar;
                prmDescVia1.Value = objDireccion.sVia1;

                prmDescVia2 = cmd.CreateParameter();
                prmDescVia2.ParameterName = "@vEMP_chNKMDESC";
                prmDescVia2.SqlDbType = SqlDbType.VarChar;
                prmDescVia2.Value = objDireccion.SVia2;

                prmDescVia3 = cmd.CreateParameter();
                prmDescVia3.ParameterName = "@vEMP_chIDLDESC";
                prmDescVia3.SqlDbType = SqlDbType.VarChar;
                prmDescVia3.Value = objDireccion.SVia3;

                prmDescVia4 = cmd.CreateParameter();
                prmDescVia4.ParameterName = "@vEMP_chTZONDESC";
                prmDescVia4.SqlDbType = SqlDbType.VarChar;
                prmDescVia4.Value = objDireccion.SVia4;

                prmUbiGeo = cmd.CreateParameter();
                prmUbiGeo.ParameterName = "@vUBIG_P_inCODUBI";
                prmUbiGeo.SqlDbType = SqlDbType.Int;
                prmUbiGeo.Value = objDireccion.Ubicacion;
                /*
                                prmIdModificacion = cmd.CreateParameter();
                                prmIdModificacion.ParameterName = "@vEMP_inSEGU_inUSUMOD";
                                prmIdModificacion.SqlDbType = SqlDbType.Int;
                                prmIdModificacion.Value = objDireccion.IDPersona;*/

                /*       prmFechaModificacion = cmd.CreateParameter();
                       prmFechaModificacion.ParameterName = "@vSEGU_chFECMOD";
                       prmFechaModificacion.SqlDbType = SqlDbType.VarChar;
                       prmFechaModificacion.Value = objDireccion.FechaModificacion;*/
                //@vEMP_chDIR
                prmDireCompleta = cmd.CreateParameter();
                prmDireCompleta.ParameterName = "@vEMP_chDIR";
                prmDireCompleta.SqlDbType = SqlDbType.VarChar;
                prmDireCompleta.Value = DireCompleta;

                cmd.Parameters.Add(prmDireCompleta);
                //cmd.Parameters.Add(prmIdModificacion);
                cmd.Parameters.Add(prmDescVia1);
                cmd.Parameters.Add(prmDescVia2);
                cmd.Parameters.Add(prmDescVia3);
                cmd.Parameters.Add(prmDescVia4);
                //  cmd.Parameters.Add(prmEliminado);
                //  cmd.Parameters.Add(prmFechaCreacion);
                //  cmd.Parameters.Add(prmFechaModificacion);
                cmd.Parameters.Add(prmIDVia1);
                cmd.Parameters.Add(prmIDVia2);
                cmd.Parameters.Add(prmIDVia3);
                cmd.Parameters.Add(prmIDVia4);
                cmd.Parameters.Add(prmUbiGeo);
                cmd.Parameters.Add(prmIDPersona);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return 1;
        }
    }
}
